home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Source Code
/
Visual Basic Source Code.iso
/
vbsource
/
hugstr
/
hugearr.his
< prev
next >
Wrap
Text File
|
1992-04-01
|
7KB
|
171 lines
HUGEARR.HIS -- History of Public Modifications to HUGEARR.DLL
Microsoft Customer Support uploaded to the MSL a DLL to support huge
arrays from Visual BASIC v1.0. Because the source was included, and
no copyright posted, HUGEARR.DLL has a lot of educational potential.
I found a small bug in HUGEARRY.DLL, or rather an oversight, in that
HugeUbound was defined as an integer function, thus preventing its
use on...huge arrays. The bug fix was simple and this ZIP file
contains the modified files. It occurred to me that there were a
number of array related functions that might be added to the DLL
so I started this history file in hopes that modifications could
be made in one place and re-posted over this file.
Jonathan Zuck, User Friendly, Inc. 06/26/91
06/10/91 Original Files: MS Customer Support
HUGEARR.BAS 05/13/91
HUGEARR.C 06/10/91
HUGEARR.DEF 05/09/91
HUGEARR.DLL 06/10/91
HUGEARR.H 05/10/91
HUGEARR.TXT 06/04/91
MAKEFILE 05/10/91
06/26/91 HUGEUBOUND now returns LONG User Friendly, Inc.
Changed Files:
HUGEARR.BAS 06/26/91
HUGEARR.TXT 06/26/91
HUGEARR.C 06/26/91
HUGEARR.H 06/26/91
HUGEARR.DLL 06/26/91
New Files:
History.TXT 06/26/91
Remarks:
The purpose of HUGEARR.DLL was to support huge arrays. However,
HugeUbound was defined as an integer function, making it impossible
to get consistent results when the array had more than 32k elements.
The changes here are quite simple:
HUGEARR.BAS
Changed the Declare statment for HugeUbound
HUGEARR.TXT
Modified HugeUbound example
HUGEARR.C
Changed the function return to LONG
Changed the ubound variable declaration to LONG
HUGEARR.H
Changed the HugeUbound declaration to LONG
HUGEARR.DLL
Re-built using NMAKE
************************************************************************
Date: 12/31/1991
From: Stephen Schmidt, CompuServe ID 73200,3207
Subj: HUGEARR V1.2 Modifications to support any integer sized element
VB Users:
HUGEARR can now store and retrieve individual array elements with lengths
of between 1 and 32,767 bytes. (It is no longer limited to array elements
whose size is a power of two.)
C Developers:
HUGEARR now stores as many elements as possible within each segment of
memory allocated for the array. Unused space is left at the end of each
segment so that individual elements will not span multiple segments.
This should result in less unused space per segment when the element size
is small, and it relieves the user from having to pad elements so that their
size is a power of two.
************************************************************************
Date: 2/22/92
From: Stephen Schmidt, CompuServe ID 73200,3207
Subj: HUGEARR V1.3 Modifications to return non-zero array handles
VB Users:
HUGEARR will no longer return an array handle of zero, so that you can
store array handles in variables and assume that a handle value of zero does
NOT refer to a dimensioned array. If you use this approach, and you will be
erasing and dimensioning arrays using the same array handle variable, then I
suggest that you set the array handle variable to zero after it's array has
been erased.
C Developers:
Within the DLL, handles still range between 0 and MaxNumArrays - 1,
whereas outside of the DLL, handles range between 1 and MaxNumArrays. The
array handle is decremented by one at key entry points within the functions.
Also, if the Windows GlobalRealloc() function fails during a call to
HugeRedim(), HUGEARR will transparently attempt to create a new array and copy
the elements from the existing array over to it.
************************************************************************
02/23/91 HUGESAVE and HUGELOAD added End User Computing Ltd.
Changed Files:
HUGEARR.BAS 02/23/92
HUGEARR.TXT 02/23/92
HUGEARR.C 02/23/92
HUGEARR.H 02/23/92
HUGEARR.DLL 02/23/92
HUGEARR.DEF 02/23/92
HISTORY.TXT 02/23/92
Remarks:
In order to speed up the saving and loading of Huge Arrays the two
functions HugeLoad and HugeSave were added.
HUGEARR.BAS
Added the Declare statments for HugeSave and HugeLoad
HUGEARR.TXT
Added HugeSave and HugeLoad examples
HUGEARR.C
Added HugeSave and hugeLoad functions
HUGEARR.H
Added function prototypes for HugeLoad and HugeSave
Added constants HA_FILEOPENERROR, HA_FILEREADERROR and
HA_FILEWRITEERROR
HUGEARR.DEF
Added declarations for HugeLoad and HugeSave
HUGEARR.DLL
Re-built using MAKE
************************************************************************
Date: 4/2/92
From: Stephen Schmidt, CompuServe ID 73200,3207
Subj: HUGEARR V1.6 Modifications to add multiple-element assignment functions
VB Users:
Added the VBHugeGetNum which will copy several contiguous elements from a
huge array into some part of a VB array, and added the related VBHugeSetNum
function which will copy several contiguous elements from a VB array into a
huge array. Renamed most of the functions to be more consistent. Merged the
HugeSave and HugeLoad functions from End User Computing, Ltd.
I've been using most of the huge array functions within my VB programs
since I first posted them on CompuServe, and I don't know of any problems.
Let me know if find any problems--no fixes guaranteed though.
C Developers:
I changed the program so that it will now compile with only a few warnings
at level 4, and replaced some of the more redundant blocks of code with C
preprocessor macros. Most of the exported functions were placed in their own
source file and segment. THIS FILE was renamed from HISTORY.TXT to HUGEARR.HIS.
I compiled the DLL to work in non-protected Windows mode also--there may
be problems when using this DLL in non-protected mode stemming from my
assumptions about how many elements will fit within a segment--test these
functions thouroughly before using them in your important non-protected
applications.
The DLL was compiled in medium model with Microsoft Quick C for Windows.
----------
These changes are hereby released into the public domain by Stephen Schmidt.
USERS OF THIS SOFTWARE MUST ACCEPT THIS DISCLAIMER OF WARRANTY: "THIS SOFTWARE
IS SUPPLIED AS IS. THE AUTHORS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED,
INCLUDING, WITHOUT LIMITATION, THE WARRANTIES OF MERCHANTABILITY AND OF FITNESS
FOR ANY PURPOSE. THE AUTHORS ASSUME NO LIABILITY FOR DAMAGES, DIRECT OR
CONSEQUENTIAL, WHICH MAY RESULT FROM THE USE OF THIS SOFTWARE."